home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / komunikace / k-ninja / setup-kninja_v2.exe / {app} / components / jsconsole-clhandler.js < prev    next >
Text File  |  2004-04-18  |  5KB  |  137 lines

  1. /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2.  * ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is mozilla.org code.
  16.  *
  17.  * The Initial Developer of the Original Code is
  18.  * Netscape Communications Corporation.
  19.  * Portions created by the Initial Developer are Copyright (C) 1999
  20.  * the Initial Developer. All Rights Reserved.
  21.  *
  22.  * Contributor(s):
  23.  *   Martijn Pieters <mj@digicool.com>
  24.  *
  25.  * Alternatively, the contents of this file may be used under the terms of
  26.  * either of the GNU General Public License Version 2 or later (the "GPL"),
  27.  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  28.  * in which case the provisions of the GPL or the LGPL are applicable instead
  29.  * of those above. If you wish to allow use of your version of this file only
  30.  * under the terms of either the GPL or the LGPL, and not to allow others to
  31.  * use your version of this file under the terms of the MPL, indicate your
  32.  * decision by deleting the provisions above and replace them with the notice
  33.  * and other provisions required by the GPL or the LGPL. If you do not delete
  34.  * the provisions above, a recipient may use your version of this file under
  35.  * the terms of any one of the MPL, the GPL or the LGPL.
  36.  *
  37.  * ***** END LICENSE BLOCK ***** */
  38.  
  39. /*
  40.  * -jsconsole commandline handler; starts up the JavaScript console.
  41.  */
  42.  
  43. /*
  44.  * Constants
  45.  */
  46.  
  47. const JSCONSOLEHANDLER_CONTRACTID =
  48.     "@mozilla.org/commandlinehandler/general-startup;1?type=jsconsole";
  49.  
  50. const JSCONSOLEHANDLER_CID = 
  51.     Components.ID('{1698ef18-c128-41a1-b4d0-7f9acd2ae86c}');
  52.  
  53. /*
  54.  * Classes
  55.  */
  56.  
  57. /* jsConsoleHandler class constructor */
  58. function jsConsoleHandler() {}
  59.  
  60. /* jsConsoleHandler class def */
  61. jsConsoleHandler.prototype = {
  62.     commandLineArgument: '-jsconsole',
  63.     prefNameForStartup: 'general.startup.jsconsole',
  64.     chromeUrlForTask: 'chrome://global/content/console.xul',
  65.     helpText: 'Start with Javascript Console',
  66.     handlesArgs: false,
  67.     defaultArgs: null,
  68.     openWindowWithArgs: false
  69. };
  70.  
  71. /*
  72.  * Objects
  73.  */
  74.  
  75. /* jsConsoleHandler Module (for XPCOM registration) */
  76. var jsConsoleHandlerModule = {
  77.     registerSelf: function(compMgr, fileSpec, location, type) {
  78.         compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
  79.  
  80.         compMgr.registerFactoryLocation(JSCONSOLEHANDLER_CID, 
  81.                                         'JS Console Commandline Handler component',
  82.                                         JSCONSOLEHANDLER_CONTRACTID, 
  83.                                         fileSpec,
  84.                                         location, 
  85.                                         type);
  86.         var catman = Components.classes["@mozilla.org/categorymanager;1"]
  87.             .getService(Components.interfaces.nsICategoryManager);
  88.         catman.addCategoryEntry("command-line-argument-handlers", "jsconsole command line handler",
  89.             JSCONSOLEHANDLER_CONTRACTID,
  90.             true, true);
  91.     },
  92.  
  93.     unregisterSelf: function(compMgr, fileSpec, location) {
  94.         compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
  95.         compMgr.unregisterFactoryLocation(JSCONSOLEHANDLER_CID, fileSpec);
  96.         var catman = Components.classes["@mozilla.org/categorymanager;1"]
  97.             .getService(Components.interfaces.nsICategoryManager);
  98.         catman.deleteCategoryEntry("command-line-argument-handlers",
  99.             JSCONSOLEHANDLER_CONTRACTID, true);
  100.     },
  101.  
  102.     getClassObject: function(compMgr, cid, iid) {
  103.         if (!cid.equals(JSCONSOLEHANDLER_CID))
  104.             throw Components.results.NS_ERROR_NO_INTERFACE;
  105.  
  106.         if (!iid.equals(Components.interfaces.nsIFactory))
  107.             throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
  108.  
  109.         return jsConsoleHandlerFactory;
  110.     },
  111.  
  112.     canUnload: function(compMgr) { return true; }
  113. };
  114.  
  115. /* jsConsoleHandler Class Factory */
  116. var jsConsoleHandlerFactory = {
  117.     createInstance: function(outer, iid) {
  118.         if (outer != null)
  119.             throw Components.results.NS_ERROR_NO_AGGREGATION;
  120.     
  121.         if (!iid.equals(Components.interfaces.nsICmdLineHandler) &&
  122.             !iid.equals(Components.interfaces.nsISupports))
  123.             throw Components.results.NS_ERROR_INVALID_ARG;
  124.  
  125.         return new jsConsoleHandler();
  126.     }
  127. }
  128.  
  129. /*
  130.  * Functions
  131.  */
  132.  
  133. /* module initialisation */
  134. function NSGetModule(comMgr, fileSpec) { return jsConsoleHandlerModule; }
  135.  
  136. // vim:sw=4:sr:sta:et:sts:
  137.